home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Tool Chest / Interfaces & Libraries / Interfaces / PInterfaces / FileTransfers.p < prev    next >
Encoding:
Text File  |  1995-07-06  |  11.9 KB  |  339 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        FileTransfers.p
  3.  
  4.      Contains:    CommToolbox File Transfer Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT FileTransfers;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __FILETRANSFERS__}
  30. {$SETC __FILETRANSFERS__ := 1}
  31.  
  32. {$I+}
  33. {$SETC FileTransfersIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36.  
  37. {$IFC UNDEFINED __WINDOWS__}
  38. {$I Windows.p}
  39. {$ENDC}
  40. {    Types.p                                                        }
  41. {        ConditionalMacros.p                                        }
  42. {    Memory.p                                                    }
  43. {        MixedMode.p                                                }
  44. {    Quickdraw.p                                                    }
  45. {        QuickdrawText.p                                            }
  46. {    Events.p                                                    }
  47. {        OSUtils.p                                                }
  48. {    Controls.p                                                    }
  49. {        Menus.p                                                    }
  50.  
  51. {$IFC UNDEFINED __CTBUTILITIES__}
  52. {$I CTBUtilities.p}
  53. {$ENDC}
  54. {    Dialogs.p                                                    }
  55. {        Errors.p                                                }
  56. {        TextEdit.p                                                }
  57. {    StandardFile.p                                                }
  58. {        Files.p                                                    }
  59. {            Finder.p                                            }
  60. {    AppleTalk.p                                                    }
  61.  
  62. {$IFC UNDEFINED __CONNECTIONS__}
  63. {$I Connections.p}
  64. {$ENDC}
  65.  
  66. {$IFC UNDEFINED __FILES__}
  67. {$I Files.p}
  68. {$ENDC}
  69.  
  70. {$IFC UNDEFINED __TERMINALS__}
  71. {$I Terminals.p}
  72. {$ENDC}
  73.  
  74. {$PUSH}
  75. {$ALIGN MAC68K}
  76. {$LibExport+}
  77.  
  78. CONST
  79. { current file transfer manager version    }
  80.     curFTVersion                = 2;
  81. { FTErr    }
  82.     ftGenericError                = -1;
  83.     ftNoErr                        = 0;
  84.     ftRejected                    = 1;
  85.     ftFailed                    = 2;
  86.     ftTimeOut                    = 3;
  87.     ftTooManyRetry                = 4;
  88.     ftNotEnoughDSpace            = 5;
  89.     ftRemoteCancel                = 6;
  90.     ftWrongFormat                = 7;
  91.     ftNoTools                    = 8;
  92.     ftUserCancel                = 9;
  93.     ftNotSupported                = 10;
  94.  
  95.     
  96. TYPE
  97.     FTErr = OSErr;
  98.  
  99.  
  100. CONST
  101.     ftIsFTMode                    = 1 * (2**(0));
  102.     ftNoMenus                    = 1 * (2**(1));
  103.     ftQuiet                        = 1 * (2**(2));
  104.     ftConfigChanged                = 1 * (2**(4));
  105.     ftSucc                        = 1 * (2**(7));
  106.  
  107.     
  108. TYPE
  109.     FTFlags = LONGINT;
  110.  
  111.  
  112. CONST
  113.     ftSameCircuit                = 1 * (2**(0));
  114.     ftSendDisable                = 1 * (2**(1));
  115.     ftReceiveDisable            = 1 * (2**(2));
  116.     ftTextOnly                    = 1 * (2**(3));
  117.     ftNoStdFile                    = 1 * (2**(4));
  118.     ftMultipleFileSend            = 1 * (2**(5));
  119.  
  120.     
  121. TYPE
  122.     FTAttributes = INTEGER;
  123.  
  124.  
  125. CONST
  126.     ftReceiving                    = 0;
  127.     ftTransmitting                = 1;
  128.  
  129.     
  130. TYPE
  131.     FTDirection = INTEGER;
  132.  
  133. {    application routines type definitions }
  134.     FTPtr = ^FTRecord;
  135.     FTHandle = ^FTPtr;
  136.  
  137.     FileTransferDefProcPtr = ProcPtr;  { FUNCTION FileTransferDef(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT; }
  138.     FileTransferReadProcPtr = ProcPtr;  { FUNCTION FileTransferRead(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  139.     FileTransferWriteProcPtr = ProcPtr;  { FUNCTION FileTransferWrite(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr; }
  140.     FileTransferSendProcPtr = ProcPtr;  { FUNCTION FileTransferSend(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags): Size; }
  141.     FileTransferReceiveProcPtr = ProcPtr;  { FUNCTION FileTransferReceive(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags): Size; }
  142.     FileTransferEnvironsProcPtr = ProcPtr;  { FUNCTION FileTransferEnvirons(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec): OSErr; }
  143.     FileTransferNotificationProcPtr = ProcPtr;  { PROCEDURE FileTransferNotification(hFT: FTHandle; pFSSpec: FSSpecPtr); }
  144.     FileTransferChooseIdleProcPtr = ProcPtr;  { PROCEDURE FileTransferChooseIdle; }
  145.     FileTransferDefUPP = UniversalProcPtr;
  146.     FileTransferReadUPP = UniversalProcPtr;
  147.     FileTransferWriteUPP = UniversalProcPtr;
  148.     FileTransferSendUPP = UniversalProcPtr;
  149.     FileTransferReceiveUPP = UniversalProcPtr;
  150.     FileTransferEnvironsUPP = UniversalProcPtr;
  151.     FileTransferNotificationUPP = UniversalProcPtr;
  152.     FileTransferChooseIdleUPP = UniversalProcPtr;
  153.  
  154.     FTRecord = PACKED RECORD
  155.         procID:                    INTEGER;
  156.         flags:                    FTFlags;
  157.         errCode:                FTErr;
  158.         refCon:                    LONGINT;
  159.         userData:                LONGINT;
  160.         defProc:                FileTransferDefUPP;
  161.         config:                    Ptr;
  162.         oldConfig:                Ptr;
  163.         environsProc:            FileTransferEnvironsUPP;
  164.         reserved1:                LONGINT;
  165.         reserved2:                LONGINT;
  166.         ftPrivate:                Ptr;
  167.         sendProc:                FileTransferSendUPP;
  168.         recvProc:                FileTransferReceiveUPP;
  169.         writeProc:                FileTransferWriteUPP;
  170.         readProc:                FileTransferReadUPP;
  171.         owner:                    WindowPtr;
  172.         direction:                FTDirection;
  173.         theReply:                SFReply;
  174.         writePtr:                LONGINT;
  175.         readPtr:                LONGINT;
  176.         theBuf:                    ^CHAR;
  177.         bufSize:                LONGINT;
  178.         autoRec:                Str255;
  179.         attributes:                FTAttributes;
  180.     END;
  181.  
  182.  
  183. CONST
  184. { FTReadProc messages }
  185.     ftReadOpenFile                = 0;                            { count = forkFlags, buffer = pblock from PBGetFInfo }
  186.     ftReadDataFork                = 1;
  187.     ftReadRsrcFork                = 2;
  188.     ftReadAbort                    = 3;
  189.     ftReadComplete                = 4;
  190.     ftReadSetFPos                = 6;                            { count = forkFlags, buffer = pBlock same as PBSetFPos }
  191.     ftReadGetFPos                = 7;                            { count = forkFlags, buffer = pBlock same as PBGetFPos }
  192. { FTWriteProc messages }
  193.     ftWriteOpenFile                = 0;                            { count = forkFlags, buffer = pblock from PBGetFInfo }
  194.     ftWriteDataFork                = 1;
  195.     ftWriteRsrcFork                = 2;
  196.     ftWriteAbort                = 3;
  197.     ftWriteComplete                = 4;
  198.     ftWriteFileInfo                = 5;
  199.     ftWriteSetFPos                = 6;                            { count = forkFlags, buffer = pBlock same as PBSetFPos }
  200.     ftWriteGetFPos                = 7;                            { count = forkFlags, buffer = pBlock same as PBGetFPos }
  201. {    fork flags }
  202.     ftOpenDataFork                = 1;
  203.     ftOpenRsrcFork                = 2;
  204.  
  205.     uppFileTransferDefProcInfo = $0000FEF0; { FUNCTION (4 byte param, 2 byte param, 4 byte param, 4 byte param, 4 byte param): 4 byte result; }
  206.     uppFileTransferReadProcInfo = $00002FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; }
  207.     uppFileTransferWriteProcInfo = $00002FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param): 2 byte result; }
  208.     uppFileTransferSendProcInfo = $0000AFF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param, 2 byte param): 4 byte result; }
  209.     uppFileTransferReceiveProcInfo = $0000EFF0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param): 4 byte result; }
  210.     uppFileTransferEnvironsProcInfo = $000003E0; { FUNCTION (4 byte param, 4 byte param): 2 byte result; }
  211.     uppFileTransferNotificationProcInfo = $000003C0; { PROCEDURE (4 byte param, 4 byte param); }
  212.     uppFileTransferChooseIdleProcInfo = $00000000; { PROCEDURE ; }
  213.  
  214. FUNCTION NewFileTransferDefProc(userRoutine: FileTransferDefProcPtr): FileTransferDefUPP;
  215.     {$IFC NOT GENERATINGCFM }
  216.     INLINE $2E9F;
  217.     {$ENDC}
  218.  
  219. FUNCTION NewFileTransferReadProc(userRoutine: FileTransferReadProcPtr): FileTransferReadUPP;
  220.     {$IFC NOT GENERATINGCFM }
  221.     INLINE $2E9F;
  222.     {$ENDC}
  223.  
  224. FUNCTION NewFileTransferWriteProc(userRoutine: FileTransferWriteProcPtr): FileTransferWriteUPP;
  225.     {$IFC NOT GENERATINGCFM }
  226.     INLINE $2E9F;
  227.     {$ENDC}
  228.  
  229. FUNCTION NewFileTransferSendProc(userRoutine: FileTransferSendProcPtr): FileTransferSendUPP;
  230.     {$IFC NOT GENERATINGCFM }
  231.     INLINE $2E9F;
  232.     {$ENDC}
  233.  
  234. FUNCTION NewFileTransferReceiveProc(userRoutine: FileTransferReceiveProcPtr): FileTransferReceiveUPP;
  235.     {$IFC NOT GENERATINGCFM }
  236.     INLINE $2E9F;
  237.     {$ENDC}
  238.  
  239. FUNCTION NewFileTransferEnvironsProc(userRoutine: FileTransferEnvironsProcPtr): FileTransferEnvironsUPP;
  240.     {$IFC NOT GENERATINGCFM }
  241.     INLINE $2E9F;
  242.     {$ENDC}
  243.  
  244. FUNCTION NewFileTransferNotificationProc(userRoutine: FileTransferNotificationProcPtr): FileTransferNotificationUPP;
  245.     {$IFC NOT GENERATINGCFM }
  246.     INLINE $2E9F;
  247.     {$ENDC}
  248.  
  249. FUNCTION NewFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleProcPtr): FileTransferChooseIdleUPP;
  250.     {$IFC NOT GENERATINGCFM }
  251.     INLINE $2E9F;
  252.     {$ENDC}
  253.  
  254. FUNCTION CallFileTransferDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: FileTransferDefUPP): LONGINT;
  255.     {$IFC NOT GENERATINGCFM}
  256.     INLINE $205F, $4E90;
  257.     {$ENDC}
  258.  
  259. FUNCTION CallFileTransferReadProc(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferReadUPP): OSErr;
  260.     {$IFC NOT GENERATINGCFM}
  261.     INLINE $205F, $4E90;
  262.     {$ENDC}
  263.  
  264. FUNCTION CallFileTransferWriteProc(VAR count: LONGINT; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferWriteUPP): OSErr;
  265.     {$IFC NOT GENERATINGCFM}
  266.     INLINE $205F, $4E90;
  267.     {$ENDC}
  268.  
  269. FUNCTION CallFileTransferSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags; userRoutine: FileTransferSendUPP): Size;
  270.     {$IFC NOT GENERATINGCFM}
  271.     INLINE $205F, $4E90;
  272.     {$ENDC}
  273.  
  274. FUNCTION CallFileTransferReceiveProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags; userRoutine: FileTransferReceiveUPP): Size;
  275.     {$IFC NOT GENERATINGCFM}
  276.     INLINE $205F, $4E90;
  277.     {$ENDC}
  278.  
  279. FUNCTION CallFileTransferEnvironsProc(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec; userRoutine: FileTransferEnvironsUPP): OSErr;
  280.     {$IFC NOT GENERATINGCFM}
  281.     INLINE $205F, $4E90;
  282.     {$ENDC}
  283.  
  284. PROCEDURE CallFileTransferNotificationProc(hFT: FTHandle; pFSSpec: FSSpecPtr; userRoutine: FileTransferNotificationUPP);
  285.     {$IFC NOT GENERATINGCFM}
  286.     INLINE $205F, $4E90;
  287.     {$ENDC}
  288.  
  289. PROCEDURE CallFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleUPP);
  290.     {$IFC NOT GENERATINGCFM}
  291.     INLINE $205F, $4E90;
  292.     {$ENDC}
  293.  
  294. FUNCTION InitFT: FTErr;
  295. FUNCTION FTGetVersion(hFT: FTHandle): Handle;
  296. FUNCTION FTGetFTVersion: INTEGER;
  297. FUNCTION FTNew(procID: INTEGER; flags: FTFlags; sendProc: FileTransferSendUPP; recvProc: FileTransferReceiveUPP; readProc: FileTransferReadUPP; writeProc: FileTransferWriteUPP; environsProc: FileTransferEnvironsUPP; owner: WindowPtr; refCon: LONGINT; userData: LONGINT): FTHandle;
  298. PROCEDURE FTDispose(hFT: FTHandle);
  299. FUNCTION FTStart(hFT: FTHandle; direction: FTDirection; {CONST}VAR fileInfo: SFReply): FTErr;
  300. FUNCTION FTAbort(hFT: FTHandle): FTErr;
  301. FUNCTION FTSend(hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  302. FUNCTION FTReceive(hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  303. PROCEDURE FTExec(hFT: FTHandle);
  304. PROCEDURE FTActivate(hFT: FTHandle; activate: BOOLEAN);
  305. PROCEDURE FTResume(hFT: FTHandle; resume: BOOLEAN);
  306. FUNCTION FTMenu(hFT: FTHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  307. FUNCTION FTChoose(VAR hFT: FTHandle; where: Point; idleProc: FileTransferChooseIdleUPP): INTEGER;
  308. PROCEDURE FTEvent(hFT: FTHandle; {CONST}VAR theEvent: EventRecord);
  309. FUNCTION FTValidate(hFT: FTHandle): BOOLEAN;
  310. PROCEDURE FTDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  311. FUNCTION FTSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  312. PROCEDURE FTSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  313. FUNCTION FTSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  314. PROCEDURE FTSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  315. PROCEDURE FTSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  316. PROCEDURE FTSetupPostflight(procID: INTEGER);
  317. FUNCTION FTGetConfig(hFT: FTHandle): Ptr;
  318. FUNCTION FTSetConfig(hFT: FTHandle; thePtr: UNIV Ptr): INTEGER;
  319. FUNCTION FTIntlToEnglish(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  320. FUNCTION FTEnglishToIntl(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  321. PROCEDURE FTGetToolName(procID: INTEGER; VAR name: Str255);
  322. FUNCTION FTGetProcID(name: ConstStr255Param): INTEGER;
  323. PROCEDURE FTSetRefCon(hFT: FTHandle; refCon: LONGINT);
  324. FUNCTION FTGetRefCon(hFT: FTHandle): LONGINT;
  325. PROCEDURE FTSetUserData(hFT: FTHandle; userData: LONGINT);
  326. FUNCTION FTGetUserData(hFT: FTHandle): LONGINT;
  327. PROCEDURE FTGetErrorString(hFT: FTHandle; id: INTEGER; VAR errMsg: Str255);
  328.  
  329. {$ALIGN RESET}
  330. {$POP}
  331.  
  332. {$SETC UsingIncludes := FileTransfersIncludes}
  333.  
  334. {$ENDC} {__FILETRANSFERS__}
  335.  
  336. {$IFC NOT UsingIncludes}
  337.  END.
  338. {$ENDC}
  339.